home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / progtool / modula2 / module / sounds.def < prev    next >
Text File  |  1995-11-25  |  4KB  |  76 lines

  1. (******************************************************************************)
  2. (*      This MODULE is Public Domain. Copy me like a beast!                   *)
  3. (*               Christian Ledermann                                          *)
  4. (*               Wölfelkofen 2                                                *)
  5. (*               84166 Adlkofen                                               *)
  6. (******************************************************************************)
  7. (*                                                                            *)
  8. (* Started:   20.12.92     03:54:30                                           *)
  9. (* Version: 20.12.89   01:054:12:54                                           *)
  10. (*                                                                            *)
  11. (******************************************************************************)
  12. (*                                                                            *)
  13. (* Diese Software ist ohne jede Garantie. Ich verspreche                      *)
  14. (* keinerlei Wartung und übernehme keine Verantwortung für Schäden die        *)
  15. (* durch die Benutzung dieses Programmes entstehen.                           *)
  16. (* Jegliche Ersatzansprüche lehne ich ab.                                     *)
  17. (*                                                                            *)
  18. (******************************************************************************)
  19.  
  20. DEFINITION MODULE  Sounds;
  21.  
  22. (************************************************************************)
  23. (* Soundprogramiereung ganz einfach !                                   *)
  24. (* ähnlich wie in OMIKRON o. GFA Basic                                  *)
  25. (* Christian Ledermann 4/93                                             *)
  26. (************************************************************************)
  27.  
  28. TYPE ChanelFlag = (OneOff,TwoOff,ThreeOff);
  29.      Chanel = SET OF ChanelFlag;
  30.  
  31. CONST AllOn = Chanel{};
  32.       AllOff = Chanel{OneOff..ThreeOff};
  33.  
  34.  
  35. (* Kanal:= Kanal 1..3 des Soundchips *)
  36.  
  37. (* 125000 / Frequenz := Periode *)
  38. PROCEDURE Sound(Kanal,Periode:CARDINAL);(* Periode 0..4095 *)
  39.  
  40. (* Hüllkurve 1..3,9 linear fallend dann 0 \____    *)
  41. (* Hüllkurve 4..7,15 linear steigend dann 0 /|____ *)
  42. (* Hüllkurve 8 Sägezahn steigend  \|\|\|\          *)
  43. (* Hüllkurve 10 Dreieck anfangs Fallend \/\/\/\    *)
  44. (*    "      11 linear fallend dann laut \|-----   *)
  45. (*    "      12 Sägezahn steigend  /|/|/|/|        *)
  46. (*    "      13 linear steigend dann laut /-----   *)
  47. (*    "      14 Dreieck anfangs steigend /\/\/\    *)
  48.  
  49. PROCEDURE Wave(Kanal,(*Hüll-*)Kurve, Dauer :CARDINAL);
  50.                                      (* Dauer: Werte von 0..65536 möglich *)
  51.  
  52. PROCEDURE Volume(Kanal,Vol:CARDINAL); (* Werte von 0..15 möglich *)
  53.  
  54. PROCEDURE Noise(Hoehe:CARDINAL); (* Werte von 0..31 möglich *)
  55.  
  56. PROCEDURE SetSoundAndNoise(NoiseChanels,SoundChanels:Chanel);
  57. (* Mit NoiseChanels bzw SoundChanels wird angegeben    *)
  58. (* welche der Ton- oder Rauschkanäle ausgeschaltet !!  *)
  59. (* werden                                              *)
  60. (* Zu jedem Tonkanal kann Rauschen dazugemischt werden *)
  61.  
  62. PROCEDURE SoundAndNoiseOnOff(NoiseFlag,SoundFlag:CARDINAL);
  63. (* Eigendlich dieselbe PROCEDURE wie SetSoundAndNoise *)
  64. (* Nur das hier ein CARDINAL anstelle des SETs        *)
  65. (* übergeben wird.                                    *)
  66. (* KanalFlag := 0 => Kanal 1, 2 u. 3 an     *) (*000*)
  67. (* KanalFlag := 1 => Kanal 1 aus, 2 u. 3 an *) (*001*)
  68. (* KanalFlag := 2 => Kanal 2 aus, 1 u. 3 an *) (*010*)
  69. (* KanalFlag := 3 => Kanal 1 u. 2 aus, 3 an *) (*011*)
  70. (* KanalFlag := 4 => Kanal 3 aus, 1 u. 2 an *) (*100*)
  71. (* KanalFlag := 5 => Kanal 1 u. 3 aus, 2 an *) (*101*)
  72. (* KanalFlag := 6 => Kanal 3 u. 2 aus, 1 an *) (*110*)
  73. (* KanalFlag := 7 => Kanal 1, 2 u. 3 aus    *) (*111*)
  74.  
  75. END Sounds.
  76.